package com.sduept.nwld.dataserver.rest.fault;

import com.alibaba.fastjson.JSONArray;
import com.sduept.nwld.dataserver.manager.fault.SignalChangeManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Service
public class BreakerActionCache {

	@Autowired
	private SignalChangeManager signalChangeManager;
	
	public String getBreakerActionByStationId(String stationId){
		
		List<?> signalList = signalChangeManager.findByStationId(stationId);
		List<Object[]> breakerList = new ArrayList<Object[]>();//断路器
		List<Object[]> protectList = new ArrayList<Object[]>();//保护
		for(Object obj : signalList){
			Object[] objs = (Object[]) obj;
			if(1 == Integer.parseInt(objs[5].toString())){//1：断路器
				breakerList.add(objs);
			}else{//2：保护
				protectList.add(objs);
			}
		}
		for(int i=0; i < breakerList.size(); i++){
			Object[] os = breakerList.get(i);
			//log.info(os[5]);
		}
		return null;
	}
	
	/**
	 * 查询全部的断路器动作时间（保护响应时间分析模块）
	 * @return
	 */
	public String getBreakerActionAll(){
		
		JSONArray jsa = new JSONArray();
		List<?> breList = signalChangeManager.findBreakerAll();
		for(Object obj : breList){
			JSONArray jsArr = new JSONArray();
			Object[] objs = (Object[]) obj;
			String[] strArr = objs[1].toString().split(",");//point时间点
			Double actTime = Double.valueOf(strArr[0])/1000;//ms
			if(actTime > 100){//过滤掉时间大于100ms的
				continue;
			}
			jsArr.add(objs[2]);//名
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			try {
				Date date = sdf.parse(objs[0].toString());//格式化为时间戳
				jsArr.add(date.getTime());//故障时间
			} catch (ParseException e) {

				e.printStackTrace();
			}
			jsArr.add(actTime);//动作时间
			
			jsa.add(jsArr);
		}
		return jsa.toJSONString();
	}
	
}
